#ifndef PUBLIC_H
#define PUBLIC_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <unistd.h>

//代表用虚拟仿真软件
#define DEV_SIMULATION

#define BOOL    int
#define FALSE   (0)
#define TRUE    (!FALSE)

enum NODE_TYPE
{
    NODE_TYPE_BOOL = 1,
    NODE_TYPE_INT,
    NODE_TYPE_FLOAT,
    NODE_TYPE_STRING
};

union val_t
{
    BOOL b_val;  //bool类型存储空间
    int i_val;   //整形值存储空间
    float f_val;  //浮点值存储空间
    char s_val[32];  //字符串类型
};

typedef struct node_data
{
    int key;  //唯一键值
    char name[128];
    int type;  //数据点类型
    BOOL used;  //是否有效，有几个点只是为了好看，没有实际设备
    union val_t val;
}node_t;

#define SIZE_NODE sizeof(node_t)

//虚拟仿真设备key键定义
enum SIM_KEY
{
    CTL_MODE = 100,  //控制模式指令
    SIM_CO2 = 1,
    SIM_TURANG,
    SIM_GUANGZHAO,
    SIM_PM25,
    SIM_KONGQI,
    SIM_KERAN,
    SIM_YUXUE,
    SIM_YANWU,
    SIM_RENTI,
    SIM_FENGSHAN,
    SIM_PENLIN,
    SIM_ZHEYANG,
    SIM_SHENGGUANG,
    SIM_DIANDENG,
    SIM_MENSUO
};

enum MODE_VAL
{
    MANUAL_MODE = 0,
    AUTO_MODE
};

#endif // PUBLIC_H

